package com.masterclient.app.httpservice;

import com.eoner.baselib.container.CommonBaseResponse;
import com.eoner.baselibrary.bean.address.AddResultBean;
import com.eoner.baselibrary.bean.address.AddressBean;
import com.eoner.baselibrary.bean.address.AddressListBean;
import com.eoner.baselibrary.bean.address.DefaultAddressBean;
import com.eoner.baselibrary.bean.address.UpdateAddressBean;
import com.eoner.baselibrary.bean.aftersale.AfterSaleBean;
import com.eoner.baselibrary.bean.aftersale.AfterSaleDetailData;
import com.eoner.baselibrary.bean.aftersale.AfterSaleListBean;
import com.eoner.baselibrary.bean.aftersale.AfterSalePurchaseBtnData;
import com.eoner.baselibrary.bean.aftersale.AfterSalePurchaseListData;
import com.eoner.baselibrary.bean.aftersale.AfterSaleServeInfoBean;
import com.eoner.baselibrary.bean.aftersale.CommentProductBean;
import com.eoner.baselibrary.bean.aftersale.ExpressBean;
import com.eoner.baselibrary.bean.aftersale.NewRefundDetailsBean;
import com.eoner.baselibrary.bean.aftersale.RefundBtnBean;
import com.eoner.baselibrary.bean.aftersale.ReturnGoodsBean;
import com.eoner.baselibrary.bean.aftersale.SendLogisticInfoBean;
import com.eoner.baselibrary.bean.aftersale.ShipmentsBean;
import com.eoner.baselibrary.bean.firstpager.AllBrandBean;
import com.eoner.baselibrary.bean.firstpager.AllSpecailBean;
import com.eoner.baselibrary.bean.firstpager.AwesomeDetailBean;
import com.eoner.baselibrary.bean.firstpager.BrandListBean;
import com.eoner.baselibrary.bean.firstpager.GoodProduct;
import com.eoner.baselibrary.bean.firstpager.NewGoodDiscountBean;
import com.eoner.baselibrary.bean.firstpager.NewProductDiscountBean;
import com.eoner.baselibrary.bean.firstpager.SearchVideoBean;
import com.eoner.baselibrary.bean.firstpager.SignBean;
import com.eoner.baselibrary.bean.firstpager.VideoBrandBean;
import com.eoner.baselibrary.bean.firstpager.VideoListBean;
import com.eoner.baselibrary.bean.goods.AddFavoriteBean;
import com.eoner.baselibrary.bean.goods.CommentTabBean;
import com.eoner.baselibrary.bean.goods.CommodityDetailBean;
import com.eoner.baselibrary.bean.goods.GoodDetailBean;
import com.eoner.baselibrary.bean.goods.GoodsCommentBean;
import com.eoner.baselibrary.bean.goods.MiniProgramBean;
import com.eoner.baselibrary.bean.goods.ProductSpecificationData;
import com.eoner.baselibrary.bean.goods.ProductTeamBean;
import com.eoner.baselibrary.bean.goods.ProductTeamViewBean;
import com.eoner.baselibrary.bean.goods.ShopBean;
import com.eoner.baselibrary.bean.goods.SimpleProductDetailData;
import com.eoner.baselibrary.bean.order.AliPayInfoBean;
import com.eoner.baselibrary.bean.order.CheckRefundBean;
import com.eoner.baselibrary.bean.order.ConfirmOrderBean;
import com.eoner.baselibrary.bean.order.ConfirmPriceBean;
import com.eoner.baselibrary.bean.order.CreateOrderBean;
import com.eoner.baselibrary.bean.order.OrderDetailBean;
import com.eoner.baselibrary.bean.order.OrderListBean;
import com.eoner.baselibrary.bean.order.OrderSendDeliveryBean;
import com.eoner.baselibrary.bean.order.PayInfoBean;
import com.eoner.baselibrary.bean.order.PaySuccessBean;
import com.eoner.baselibrary.bean.order.PaymentBean;
import com.eoner.baselibrary.bean.order.PresentationShareBean;
import com.eoner.baselibrary.bean.order.RefreshOrderBean;
import com.eoner.baselibrary.bean.order.SaleOrderDetailData;
import com.eoner.baselibrary.bean.order.StorageOrderDetailData;
import com.eoner.baselibrary.bean.order.StorageOrderListData;
import com.eoner.baselibrary.bean.order.WxPayInfoBean;
import com.eoner.baselibrary.bean.pay.PaymentInfoBean;
import com.eoner.baselibrary.bean.pay.WechatPayInfoBean;
import com.eoner.baselibrary.bean.personal.CheckMobileBean;
import com.eoner.baselibrary.bean.personal.CollectVideoBean;
import com.eoner.baselibrary.bean.personal.CouponMsgBean;
import com.eoner.baselibrary.bean.personal.FootprintBean;
import com.eoner.baselibrary.bean.personal.GoodsBean;
import com.eoner.baselibrary.bean.personal.MessageCenterBean;
import com.eoner.baselibrary.bean.personal.MobileChangeStateBean;
import com.eoner.baselibrary.bean.personal.MobileUpdateBean;
import com.eoner.baselibrary.bean.personal.TeamMessageBean;
import com.eoner.baselibrary.bean.personal.UploadImgBean;
import com.eoner.baselibrary.bean.purchase.DeliveryDetailBean;
import com.eoner.baselibrary.bean.purchase.PurchaseCartData;
import com.eoner.baselibrary.bean.purchase.PurchaseProductData;
import com.eoner.baselibrary.bean.shop.DealerProductManagerData;
import com.eoner.baselibrary.bean.shop.DealerShippingDetailBean;
import com.eoner.baselibrary.bean.shop.DealerShippingListBean;
import com.eoner.baselibrary.bean.shop.DealerStockItemBean;
import com.eoner.baselibrary.bean.shop.DealerStoreInfoBean;
import com.eoner.common.bean.base.CommonBaseBean;
import com.eoner.commonbean.popup.CommonPopUpBean;
import com.eoner.commonbean.product.ShareProductDataBean;
import com.masterclient.app.businessmodule.minemodule.cash.bean.BalanceCashBean;
import com.masterclient.app.businessmodule.minemodule.cash.bean.BalanceGainBean;
import com.masterclient.app.businessmodule.minemodule.cash.bean.BalanceOrderBean;
import com.masterclient.app.businessmodule.minemodule.cash.bean.CashDetailBean;
import com.masterclient.app.businessmodule.minemodule.cash.bean.CashInfoBean;
import com.masterclient.app.businessmodule.minemodule.point.model.PointDrawBean;
import com.masterclient.app.businessmodule.minemodule.point.model.PointExchangeBean;
import com.masterclient.app.businessmodule.minemodule.point.model.PointNotesBean;
import com.masterclient.app.businessmodule.minemodule.point.model.PointProductBean;
import com.masterclient.app.businessmodule.minemodule.store.bean.CollectShopBean;
import com.masterclient.app.businessmodule.settingmodule.bankcard.bean.OperateResultBean;
import com.masterclient.app.businessmodule.usermodule.login.beans.AuthBindBean;
import com.masterclient.app.businessmodule.usermodule.login.beans.AuthLoginBean;
import com.masterclient.app.businessmodule.usermodule.login.beans.CaptchaBean;
import com.masterclient.app.businessmodule.usermodule.login.beans.LoginBean;
import com.masterclient.app.businessmodule.usermodule.login.beans.LoginSuccessData;
import com.masterclient.app.modules.bridge.BackGuideBean;
import com.masterclient.app.modules.bridge.TaskRetainBean;
import com.masterclient.app.modules.cart.beans.GatherBean;
import com.masterclient.app.modules.category.beans.CategoryAllIndexBean;
import com.masterclient.app.modules.category.beans.CategoryDetailBean;
import com.masterclient.app.modules.coupon.beans.NewCouponBean;
import com.masterclient.app.modules.coupon.beans.RedPackedDetailsBean;
import com.masterclient.app.modules.coupon.beans.RedPackedListBean;
import com.masterclient.app.modules.income.dealer.model.DealerBankCardBean;
import com.masterclient.app.modules.income.dealer.model.DealerBankCardMoreBean;
import com.masterclient.app.modules.income.model.AccumulatedIncomeBean;
import com.masterclient.app.modules.income.model.ApplyWithdrawBean;
import com.masterclient.app.modules.income.model.BillBean;
import com.masterclient.app.modules.income.model.EcItemDataBean;
import com.masterclient.app.modules.income.model.HomeDataBean;
import com.masterclient.app.modules.income.model.MasterMienDataBean;
import com.masterclient.app.modules.income.model.MeetReportDataBean;
import com.masterclient.app.modules.income.model.MineDataBean;
import com.masterclient.app.modules.income.model.UnClearAccountBean;
import com.masterclient.app.modules.income.model.UnClearAccountDetailsBean;
import com.masterclient.app.modules.income.model.UnFreezeBean;
import com.masterclient.app.modules.income.model.UnfreezeDetailsBean;
import com.masterclient.app.modules.income.model.WithdrawChargeBean;
import com.masterclient.app.modules.income.model.WithdrawDetailsBean;
import com.masterclient.app.modules.main.beans.ScanDataBean;
import com.masterclient.app.modules.main.beans.ScanReceiveBean;
import com.masterclient.app.modules.main.beans.ScanWelfareBean;
import com.masterclient.app.modules.order.beans.ConfirmCartBean;
import com.masterclient.app.modules.pickgoods.beans.CheckOrderBean;
import com.masterclient.app.modules.pickgoods.beans.PickGoodsBean;
import com.masterclient.app.modules.pickgoods.beans.PickGoodsOrderBean;
import com.masterclient.app.modules.search.HotSearchBean;
import com.masterclient.app.modules.search.SearchBrandBean;
import com.masterclient.app.modules.search.SearchGoodBean;
import com.masterclient.app.modules.search.SearchShopBean;
import com.masterclient.app.modules.search.beans.SearchNewAssociateBean;
import com.masterclient.app.modules.search.beans.SearchProductsBean;
import com.masterclient.app.modules.search.beans.SearchResultDataBean;
import com.masterclient.app.modules.shop.beans.DealerBean;
import com.masterclient.app.modules.shop.beans.StockChangeBean;
import com.masterclient.app.modules.shop.beans.StockDetailsBean;
import com.masterclient.app.modules.shop.beans.StockExplainBean;
import com.masterclient.app.modules.shop.beans.StoreBean;
import com.masterclient.app.modules.shop.beans.StoreClassifyBean;
import com.masterclient.app.modules.timelimited.model.TimeLimitedTabBean;
import com.masterclient.app.modules.timelimited.model.TimeProductsBean;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.Url;

/**
 * 作者：sean
 * 创建时间：2017/6/22 15:56
 * 功能说明：
 */

public interface Api {

    @GET
    io.reactivex.Observable<ProductTeamBean> productTeam(@Url String url);

    @FormUrlEncoded
    @POST("1/partner/add_favorite")
    Observable<AddFavoriteBean> addFavorite(@Field("product_id") String product_id);

    @FormUrlEncoded
    @POST("1/customer/pick_up_salesrule")
    Observable<CommonBaseResponse<Map<String, String>>> pickUpSalesrule(@Field("coupon_code") String coupon_code);

    @FormUrlEncoded
    @POST("1/customer/bind_mobile")
    Observable<CommonBaseBean> bindMobile(@Field("captcha") String captcha, @Field("mobile") String mobile);

    @FormUrlEncoded
    @POST("1/customer/get_balance_cash_info")
    Observable<CashInfoBean> getBalanceCashInfo(@Field("id") String id);

    @FormUrlEncoded
    @POST("1/customer/get_balance_detail")
    Observable<CashDetailBean> getBalanceDetail(@Field("id") String id);

    @FormUrlEncoded
    @POST("1/customer/get_balance_gain")
    Observable<BalanceGainBean> getBalanceGain(@Field("page") String page, @Field("page_size") String page_size);

    @FormUrlEncoded
    @POST("1/customer/get_balance_order")
    Observable<BalanceOrderBean> getBalanceOrder(@Field("page") String page, @Field("page_size") String page_size);

    @FormUrlEncoded
    @POST("1/customer/get_balance_cash")
    Observable<BalanceCashBean> getBalanceCash(@Field("page") String page, @Field("page_size") String page_size);

    @GET
    io.reactivex.Observable<ProductTeamViewBean> productTeamView(@Url String url);

    @POST("1/order/add_order_review/")
    io.reactivex.Observable<CommonBaseBean> addOrderReview(@Body RequestBody body);

    @POST("/v1/trade/payment/list")
    io.reactivex.Observable<PaymentBean> validPayment(@Body RequestBody body);

    @POST("1/helper/shipmentList")
    io.reactivex.Observable<ShipmentsBean> getShipmentItems();

    @FormUrlEncoded
    @POST("1/order_refund/refundShipmentSet")
    io.reactivex.Observable<CommonBaseBean> setAfterSaleShipment(@Field("company") String company, @Field("refund_id") String refund_id
            , @Field("track_no") String track_no, @Field("code") String code);

    @FormUrlEncoded
    @POST("1/order_refund/refundCancel")
    io.reactivex.Observable<CommonBaseBean> closeAfterSale(@Field("refund_id") String refund_id);

    @FormUrlEncoded
    @POST("1/payment/pay_success")
    io.reactivex.Observable<PaySuccessBean> paySuccess(@Field("trade_no") String trade_no, @Field("type") String type);

    @GET("/v1/event/presentation/share")
    io.reactivex.Observable<PresentationShareBean> getPresentationShare(@Query("order_no") String order_no);


    @GET("1/collection/recommended/{page}")
    io.reactivex.Observable<AllSpecailBean> getSpecailList(@Path("page") String page, @Query("type") String type);

    @GET("1/video/all")
    io.reactivex.Observable<VideoBrandBean> getVideoBrands();

    @GET
    io.reactivex.Observable<SearchVideoBean> videoSearch(@Url String url);

    @GET
    io.reactivex.Observable<ShopBean> getSeller(@Url String url);

    @FormUrlEncoded
    @POST("1/order/get_review_product")
    io.reactivex.Observable<CommentProductBean> getCommentProduct(@Field("order_no") String order_no);

    @FormUrlEncoded
    @POST("1/customer/get_bupiao_detail")
    io.reactivex.Observable<CommonBaseResponse<RedPackedDetailsBean>> getRedPackedDetails(@Field("id") String trade_no, @Field("page") String page, @Field("page_size") String pageSize);

    @FormUrlEncoded
    @POST("1/customer/get_bupiao_obtain_list")
    io.reactivex.Observable<RedPackedListBean> getRedPackedFrom(@Field("page") String page, @Field("page_size") String page_size);

    @FormUrlEncoded
    @POST("1/customer/get_bupiao_spending_list")
    io.reactivex.Observable<RedPackedListBean> getRedPackedPayFor(@Field("page") String page, @Field("page_size") String page_size);

    @FormUrlEncoded
    @POST("1/customer/customer_edit_profile")
    io.reactivex.Observable<CommonBaseBean> updateUserInfo(@FieldMap Map<String, String> map);

    @Multipart
    @POST("1/helper/upload")
    io.reactivex.Observable<UploadImgBean> uploadImage(@Part List<MultipartBody.Part> parts);

    @FormUrlEncoded
    @POST("1/order_refund/refundDetail")
    io.reactivex.Observable<AfterSaleBean> getAfterSales(@Field("order_id") String order_id, @Field("order_product_id") String order_product_id);

    @FormUrlEncoded
    @POST("1/order_refund/refundBtn")
    io.reactivex.Observable<RefundBtnBean> getRefundBtn(@Field("refund_id") String refund_id);

    @FormUrlEncoded
    @POST("1/order_refund/{refund_type}")
    io.reactivex.Observable<ReturnGoodsBean> preAfterSale(@Path("refund_type") String refund_type, @Field("order_id") String order_id, @Field("order_product_id") String order_product_id, @Field("update") String update);


    @POST("1/order_refund/{apply_type}")
    io.reactivex.Observable<CommonBaseBean> applyAfterSale(@Path("apply_type") String apply_type, @Body RequestBody body);

    @FormUrlEncoded
    @POST("1/customer/remove_address")
    io.reactivex.Observable<CommonBaseBean> deleteAddress(@Field("id") String id);

    @GET("1/helper/region")
    io.reactivex.Observable<AddressListBean> getRegionList(@Query("region_id") String region_id);

    @FormUrlEncoded
    @POST("1/customer/add_address")
    io.reactivex.Observable<AddResultBean> addAddress(@Field("a_id") String a_id, @Field("address") String address, @Field("default") String default_s, @Field("full_name") String full_name, @Field("mobile") String mobile);


    @FormUrlEncoded
    @POST("1/customer/update_address")
    io.reactivex.Observable<UpdateAddressBean> updateAddress(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("1/customer/set_address_default")
    io.reactivex.Observable<DefaultAddressBean> setAddressDefault(@Field("id") String id);

    @POST("1/customer/get_address_list")
    io.reactivex.Observable<AddressBean> getAddressList();

    @FormUrlEncoded
    @POST("1/order_refund/orderDetail")
    io.reactivex.Observable<OrderDetailBean> orderDetail(@Field("order_no") String order_no);

    @FormUrlEncoded
    @POST("1/order/remove_order")
    io.reactivex.Observable<CommonBaseBean> removeOrder(@Field("order_no") String order_no);

    @FormUrlEncoded
    @POST("1/order/set_trade_cancel")
    io.reactivex.Observable<CommonBaseBean> cancleOrder(@Field("reason") String reason, @Field("trade_no") String trade_no);

    @FormUrlEncoded
    @POST("1/order/receiver_order")
    io.reactivex.Observable<CommonBaseBean> recieverOrder(@Field("id") String id);

    @FormUrlEncoded
    @POST("1/order/{type}")
    io.reactivex.Observable<OrderListBean> getOrderList(@Path("type") String type, @Field("page") String page, @Field("page_size") String page_size);

    @FormUrlEncoded
    @POST("1/order/order_search")
    io.reactivex.Observable<OrderListBean> searchOrderList(@Field("keyword") String keyword, @Field("page") String page, @Field("pageSize") String pageSize);

    @GET("/1/mission/sign")
    Observable<CommonBaseResponse<SignBean>> signInfo();

    /**
     * 修改收货地址（订单列表）
     */
    @POST("v1/trade/order/modify_address")
    io.reactivex.Observable<CommonBaseBean> modifyAddress(@Body RequestBody body);

    @FormUrlEncoded
    @POST("1/payment/card_wx_perpay")
    io.reactivex.Observable<WxPayInfoBean> wxCardPrePay(@Field("trade_no") String trade_no);

    @POST("/v1/trade/payment/commit")
    io.reactivex.Observable<PayInfoBean> aliPrePay(@Body RequestBody body);

    @FormUrlEncoded
    @POST("1/payment/card_alipay_perpay")
    io.reactivex.Observable<AliPayInfoBean> aliCardPrePay(@Field("trade_no") String trade_no);

    @FormUrlEncoded
    @POST("1/customer/login")
    io.reactivex.Observable<LoginBean> pwdLogin(@Field("mobile") String mobile, @Field("pwd") String pwd);

    @FormUrlEncoded
    @POST("1/customer/favorite_video_items")
    io.reactivex.Observable<CollectVideoBean> getCollectVideoList(@Field("page") String page, @Field("page_size") String page_size);

    @FormUrlEncoded
    @POST("1/customer/favorite_seller_items")
    io.reactivex.Observable<CommonBaseResponse<CollectShopBean>> getCollectShopList(@Field("page") String page, @Field("page_size") String page_size);

    @FormUrlEncoded
    @POST("1/customer/favorite_product_items")
    io.reactivex.Observable<GoodsBean> getCollectGoodsList(@Field("page") String page, @Field("page_size") String page_size);

    @GET
    io.reactivex.Observable<GoodsCommentBean> getCommentGoodsList(@Url String url);


    @FormUrlEncoded
    @POST("api/order/price_v2")
//confirm_order_price
    io.reactivex.Observable<ConfirmPriceBean> confirmOrderPrice(@FieldMap Map<String, String> map, @Field("product_id[]") String[] product_id);

    @FormUrlEncoded
    @POST("api/order/confirm_v2")
//confirm_order
    io.reactivex.Observable<ConfirmCartBean> confirmOrder(@FieldMap Map<String, String> map, @Field("product_id[]") String[] product_id);

    @FormUrlEncoded
    @POST("1/product/add_share_info")
    io.reactivex.Observable<CommonBaseBean> addShareInfo(@Field("product_id") String product_id);

    @FormUrlEncoded
    @POST("1/customer/add_favorite.html")
    io.reactivex.Observable<CommonBaseBean> addFavorite(@Field("timestamp") String timestamp, @Field("id") String id, @Field("type") String type);

    @FormUrlEncoded
    @POST("1/customer/remove_favorite.html")
    io.reactivex.Observable<CommonBaseBean> removeFavorite(@Field("timestamp") String timestamp, @Field("id") String id, @Field("type") String type);

    @FormUrlEncoded
    @POST("1/customer/auth_bind")
    io.reactivex.Observable<AuthBindBean> authBind(@Field("auth_type") String auth_type, @Field("captcha") String captcha, @Field("mobile") String mobile, @Field("union_id") String union_id);

    @FormUrlEncoded
    @POST("1/customer/auth_login")
    io.reactivex.Observable<AuthLoginBean> authLogin(@Field("auth_type") String auth_type, @Field("head_url") String head_url, @Field("nickname") String nickname, @Field("union_id") String union_id);


    @GET
    io.reactivex.Observable<BrandListBean> getBrandList(@Url String url);

    @GET
    io.reactivex.Observable<FootprintBean> getProductHistory(@Url String url);

    @GET
    io.reactivex.Observable<MessageCenterBean> getMessageCenter(@Url String url);

    @FormUrlEncoded
    @POST("2/customer/team_change_list")
    io.reactivex.Observable<TeamMessageBean> getTeamMessage(@Field("page") String page);

    @GET
    io.reactivex.Observable<CouponMsgBean> getSalesruleMessage(@Url String url);

    @FormUrlEncoded
    @POST("1/cart/add_to_cart")
    io.reactivex.Observable<CommonBaseBean> addToCart(@Field("product_id") String product_id, @Field("qty") String qty, @Field("timestamp") String timestamp);


    @GET
    io.reactivex.Observable<GoodDetailBean> getGoodsDetail(@Url String url);

    @GET("1/search/brand_list")
    io.reactivex.Observable<SearchBrandBean> getSearchBrandList(@Query("kw") String kw);

    @GET("1/search/seller_list")
    io.reactivex.Observable<SearchShopBean> getSearchSellerList(@Query("kw") String kw, @Query("page") String page, @Query("page_size") String page_size);

    /**
     * @return
     */
    @GET
    io.reactivex.Observable<SearchGoodBean> getSearchGoodList(@Url String url, @Query("attributes") String attributes, @Query("brand_ids") String brand_ids, @Query("cids") String cids, @Query("start_price") String start_price, @Query("end_price") String end_price, @Query("kw") String kw, @Query("page") String page, @Query("page_size") String page_size, @Query("sort") String sort, @Query("promotion_type") String promotion_type);

    /**
     * 热搜列表
     *
     * @return
     */
    @GET
    io.reactivex.Observable<HotSearchBean> getHotSearchList(@Url String url);


    @GET
    io.reactivex.Observable<VideoListBean> getVideoList(@Url String url);

    /**
     * 获取好物详情页内容
     *
     * @return
     */
    @GET("1/good_product/detail.html")
    io.reactivex.Observable<AwesomeDetailBean> getAwesomeDetail(@Query("id") String id);

    @GET
    io.reactivex.Observable<NewProductDiscountBean> getNewGoodDiscountList(@Url String url);

    /**
     * 新品特惠头部
     *
     * @return
     */
    @GET("1/new_product.html")
    io.reactivex.Observable<NewGoodDiscountBean> getNewGoodDiscount();

    /**
     * 全部品牌
     *
     * @return
     */
    @GET
    io.reactivex.Observable<AllBrandBean> getAllBrands(@Url String url);


    @GET
    io.reactivex.Observable<GoodProduct> getNewGoodProducts(@Url String url);

    @GET
    io.reactivex.Observable<CommonBaseResponse<CategoryAllIndexBean>> getCategoryData(@Url String url);

    //品类详情
    @GET
    io.reactivex.Observable<CommonBaseResponse<CategoryDetailBean>> getCategoryDetail(@Url String url,
                                                                                      @Query("top_cid") String top_cid, @Query("type") String type, @Query("cid") String cid,
                                                                                      @Query("bid") String bid, @Query("page") String page, @Query("page_size") String page_size,
                                                                                      @Query("attributes") String attributes, @Query("brand_ids") String brand_ids, @Query("cids") String cids,
                                                                                      @Query("sort") String sort, @Query("promotion_type") String promotion_type,@Query("start_price") String start_price, @Query("end_price") String end_price);

    @GET
    io.reactivex.Observable<TimeLimitedTabBean> getTimeLimitedTab(@Url String url);

    @GET
    io.reactivex.Observable<TimeProductsBean> getTimeProducts(@Url String url, @Query("event_map_id") String sh_event_map_id, @Query("page_no") String page);

    @FormUrlEncoded
    @POST("api/distribution/invite_by_code")
    Observable<CommonBaseResponse<Map<String, String>>> getInviteInfo(@Field("code") String code);

    @GET("1/car_owner/car_owner_bind")
    Observable<CommonBaseResponse<Map<String, String>>> czbAuth();

    @FormUrlEncoded
    @POST("1/order_refund/refundList")
    Observable<AfterSaleListBean> refundOrderList(@Field("page") String page, @Field("page_size") String page_size);

    @GET
    io.reactivex.Observable<PointProductBean> getPointProducts(@Url String url, @Query("page") String page);

    //商品分享数据 DealerProductManagerActivity使用
    @GET("v1/product/share/info/get")
    Observable<CommonBaseResponse<ShareProductDataBean>> productShare(@Query("product_id") String product_id);

    @GET
    io.reactivex.Observable<PointNotesBean> getPointNotes(@Url String url, @Query("page") String page, @Query("page_size") String page_size, @Query("type") String type);

    @GET
    io.reactivex.Observable<PointExchangeBean> getPointExchange(@Url String url, @Query("page") String page, @Query("page_size") String page_size);


    @FormUrlEncoded
    @POST("api/customer/get_integral")
    io.reactivex.Observable<PointDrawBean> drawPointBean(@Field("code") String code, @Query("version") String version);

    // 扫码弹窗
    @POST("v1/promotion/qr_code/popup")
    io.reactivex.Observable<CommonBaseResponse<ScanWelfareBean>> scanDialogData(@Body RequestBody body);

    // 扫码接口
    @POST("v1/promotion/qr_code/scan")
    io.reactivex.Observable<CommonBaseResponse<ScanDataBean>> scanData(@Body RequestBody body);

    // 扫码弹窗领取优惠券
    @POST("v1/promotion/qr_code/receive")
    Observable<CommonBaseResponse<ScanReceiveBean>> scanReceive(@Body RequestBody body);

    @GET("api/distribution/new_profit_order_detail")
    Observable<OrderDetailBean> getIncomeDetails(@Query("order_no") String order_no);

    @FormUrlEncoded
    @POST("api/distribution/edit_note")
    Observable<CommonBaseResponse<Map<String, String>>> editNote(@Field("invite_id") String invite_id, @Field("customer_id") String customer_id,
                                                                 @Field("note_name") String note_name, @Field("note_id") String note_id);


    @GET("1/product/share_detail")
    io.reactivex.Observable<MiniProgramBean> getMiniProgram(@Query("id") String goodid, @Query("code") String code);

    @FormUrlEncoded
    @POST("2/time_preference/sale_reminder.html")
    io.reactivex.Observable<OperateResultBean> setSaleRemain(@Field("event_map_id") String event_map_id,
                                                             @Field("product_id") String product_id,
                                                             @Field("type") String type);

    //检测手机号是不是可以修改
    @GET("3/customer/mobile_change_state")
    io.reactivex.Observable<MobileChangeStateBean> mobile_change_state(@Query("mobile") String mobile);

    //检测旧手机号
    @FormUrlEncoded
    @POST("3/customer/check_old_mobile")
    io.reactivex.Observable<CheckMobileBean> check_old_mobile(@Field("old_mobile") String old_mobile, @Field("captcha") String captcha);

    //手机号修改
    @FormUrlEncoded
    @POST("3/customer/mobile_change")
    io.reactivex.Observable<MobileUpdateBean> mobiel_change(@Field("old_mobile") String old_mobile, @Field("new_mobile") String new_mobile, @Field("captcha") String captcha);

    //获取微信支付信息
    @POST("v1/third_party/payment/get_wx_prepay")
    io.reactivex.Observable<WechatPayInfoBean> get_wx_prepay(@Body RequestBody body);

    //获取支付宝支付信息
    @POST("v1/third_party/payment/get_alipay_prepay")
    io.reactivex.Observable<com.eoner.baselibrary.bean.pay.AliPayInfoBean> get_alipay_prepay(@Body RequestBody body);

    //获取支付模块
    @POST("v1/third_party/payment/get_payment_info")
    io.reactivex.Observable<PaymentInfoBean> get_payment_info(@Body RequestBody body);

    @FormUrlEncoded
    @POST("/1/mission/mission_complete")
    Observable<CommonBaseBean> taskComplete(@Field("id") String id);


    @FormUrlEncoded
    @POST("/api/distribution/team_leader_check")
    io.reactivex.Observable<CaptchaBean> team_leader_check(@Field("team_leader_mobile") String team_leader_mobile, @Field("NECaptchaValidate") String neCaptchaValidate);


    //商品详情接口
    //@Headers({"Content-Type: application/json", "Accept: application/json"})
    @GET("/v1/product/detail/get")
    io.reactivex.Observable<CommodityDetailBean> getCommodityDetail(@Query("product_id") String product_id, @Query("code") String code, @Query("is_dealer_preview") String is_dealer_preview);//@Url String url,

    //简化详情接口
    @GET("v1/product/simple/detail/get")
    Observable<CommonBaseResponse<SimpleProductDetailData>> simpleProductDetail(@Query("product_id") String product_id);

    //收藏和移除
    @POST("v1/product/favorite/add")
    io.reactivex.Observable<CommonBaseBean> favoriteAdd(@Body RequestBody body);

    @POST("v1/product/favorite/remove")
    io.reactivex.Observable<CommonBaseBean> removeFavorite(@Body RequestBody body);

    /**
     * 获取购物车列表 // /v1/trade/cart/get
     */
    @POST("/v1/trade/cart/get")
    io.reactivex.Observable<com.masterclient.app.modules.cart.beans.ShopCartBean> getShopCartLists(@Body RequestBody body);

    /**
     * 更新购物车商品数量
     */
    @POST("/v1/trade/cart/update")
    io.reactivex.Observable<com.masterclient.app.modules.cart.beans.ShopCartBean> updateShopCartLists(@Body RequestBody body);

    /**
     * 购物车删除
     */
    @POST("/v1/trade/cart/delete")
    io.reactivex.Observable<com.masterclient.app.modules.cart.beans.ShopCartBean> deleteShopCartLists(@Body RequestBody body);

    /**
     * 购物车移入收藏夹
     */
    @POST("/v1/trade/cart/remove_to_favorite")
    io.reactivex.Observable<com.masterclient.app.modules.cart.beans.ShopCartBean> collectShopCartLists(@Body RequestBody body);

    /**
     * 加入购物车
     */
    @POST("/v1/trade/cart/add")
    io.reactivex.Observable<com.masterclient.app.modules.cart.beans.AddShopCartBean> addShopCart(@Body RequestBody body);

    @POST("/v1/trade/order/confirm")
    io.reactivex.Observable<ConfirmOrderBean> confirmOrder(@Body RequestBody body);

    @POST("/v1/trade/order/refresh")
    io.reactivex.Observable<RefreshOrderBean> refreshOrder(@Body RequestBody body);

    @POST("/v1/trade/order/create")
    io.reactivex.Observable<CreateOrderBean> createOrder(@Body RequestBody body);

    @POST("/v1/trade/status/get")
    io.reactivex.Observable<com.eoner.baselibrary.bean.order.TradeStatusBean> get_trade_status(@Body RequestBody body);

    //重构的领取优惠券
    @POST("/v1/coupon/receive")
    Observable<CommonBaseBean> coupon_receive(@Body RequestBody body);

    @GET("v1/search/product/list/get")
    Observable<CommonBaseResponse<SearchProductsBean>> searchProduct(@Query("keyword") String keyword, @Query("page") String page, @Query("page_size") String page_size,
                                                                     @Query("sort") String sort, @Query("start_price") String start_price, @Query("end_price") String end_price,
                                                                     @Query("brand_ids") String brand_ids, @Query("cids") String cids, @Query("attributes") String attributes,
                                                                     @Query("seller_id") String seller_id, @Query("tag") String tag);

    //搜素关键词联想
    @GET("v1/search/hot_search_word")
    Observable<CommonBaseResponse<SearchNewAssociateBean>> searchAssociate(@Query("keyword") String keyword);

    @GET("v1/seller/index/get")
    Observable<CommonBaseResponse<StoreBean>> storeIndex(@Query("seller_id") String id, @Query("page") String page,
                                                         @Query("sort") String sort, @Query("is_dealer") String is_dealer,
                                                         @Query("is_agent") String is_agent);

    @GET("v1/seller/nav/get")
    Observable<CommonBaseResponse<StoreClassifyBean>> storeClassift(@Query("seller_id") String id);

    //经销商商品
    @GET("v1/dealer/product/list")
    Observable<CommonBaseResponse<DealerProductManagerData>> getDealerProductList(@Query("status") String status
            , @Query("page") String page, @Query("page_size") String page_size
            , @Query("product_biz_type") String product_biz_type);

    //库存详情
    @GET("v1/dealer/product/stock/detail")
    Observable<CommonBaseResponse<StockDetailsBean>> getStockList(@Query("product_id") String product_id);

    //库存说明（包括家里库存 仓库库存）
    @GET("/v1/dealer/stock/explain")
    Observable<CommonBaseResponse<StockExplainBean>> getExplain();

    //家里库存变更
    @POST("/v1/dealer/stock/change")
    Observable<CommonBaseResponse> updateStockNum(@Body RequestBody body);

    //库存变更记录
    @GET("/v1/dealer/stock/change/record")
    Observable<CommonBaseResponse<StockChangeBean>> getStockChange(@Query("product_id") String product_id, @Query("spec") String spec, @Query("change_type") String change_type
            , @Query("stock_type") String stock_type, @Query("time_type") String time_type, @Query("time_start") String time_start, @Query("time_end") String time_end,
                                                                   @Query("page") String page, @Query("page_size") String page_size);

    //经销商店铺消息
    @GET("v1/dealer/shop/detail/get")
    Observable<CommonBaseResponse<DealerStoreInfoBean>> dealerStoreInfo();

    //更改店铺信息
    @POST("v1/dealer/shop/edit/do")
    Observable<CommonBaseResponse> updateDealerInfo(@Body RequestBody body);

    @GET("v1/dealer/product/stock/manage")
    Observable<CommonBaseResponse<List<DealerStockItemBean>>> dealerStockList(@Query("product_id") String product_id);

    //运费模板列表
    @GET("v1/dealer/product/delivery/list")
    Observable<CommonBaseResponse<DealerShippingListBean>> dealerShippingList(@Query("delivery_id") String delivery_id);

    //运费模板设置默认
    @POST("v1/dealer/product/delivery/default/set")
    Observable<CommonBaseResponse> dealerShippingDefault(@Body RequestBody body);

    //运费模板修改
    @POST("v1/dealer/product/delivery/update")
    Observable<CommonBaseResponse> dealerShippingSelected(@Body RequestBody body);

    //运费模板详情
    @POST("v1/dealer/product/delivery/view")
    Observable<CommonBaseResponse<DealerShippingDetailBean>> dealerShippingDetail(@Body RequestBody body);

    //采购订单
    @GET("v1/dealer/order/purchase/list")
    Observable<OrderListBean> purchaseOrderList(@Query("status") String status,
                                                @Query("page") String page, @Query("pageSize") String pageSize);

    //经销商销售订单列表      is_screen是1  否0   传入1的时候，会有第一页附加数据
    @GET("v1/dealer/seller_order/need/list")
    Observable<OrderListBean> saleOrdersList(@Query("status") String status, @Query("type") String type,
                                             @Query("is_screen") String is_screen, @Query("page") String page, @Query("pageSize") String pageSize);

    @GET("v1/dealer/seller_order/not/need/list")
    Observable<OrderListBean> saleOrdersAutoList(@Query("status") String status, @Query("type") String type,
                                                 @Query("is_screen") String is_screen, @Query("page") String page, @Query("pageSize") String pageSize);

    @GET("v1/dealer/seller_order/detail")
    Observable<CommonBaseResponse<SaleOrderDetailData>> saleOrderDetail(@Query("order_no") String order_no);

    //让上级代发
    @POST("v1/dealer/seller_order/up/purchase")
    Observable<CommonBaseResponse> upReserve(@Body RequestBody body);

    //我要采购
    @GET("v1/dealer/purchase")
    Observable<CommonBaseResponse<PurchaseProductData>> purchaseProduct();

    //商品的规格
    @GET("v1/dealer/product/spec/detail")
    Observable<CommonBaseResponse<ProductSpecificationData>> productSpecification(@Query("product_id") String product_id);

    //加入采购清单
    @POST("v1/trade/dealer_cart/add")
    Observable<CommonBaseResponse<Map<String, String>>> purchaseCartAdd(@Body RequestBody body);

    //修改采购清单
    @POST("v1/trade/dealer_cart/update")
    Observable<CommonBaseResponse> purchaseCartUpdate(@Body RequestBody body);

    //删除采购清单
    @POST("v1/trade/dealer_cart/delete")
    Observable<CommonBaseResponse> purchaseCartDel(@Body RequestBody body);

    //采购清单列表
    @POST("v1/trade/dealer_cart/get/info")
    Observable<CommonBaseResponse<PurchaseCartData>> purchaseCartList(@Body RequestBody body);

    //经销商发货
    @POST("v1/trade/delivery/dealer_delivery")
    Observable<CommonBaseResponse> dealerShipping(@Body RequestBody body);

    //经销商添加包裹
    @POST("v1/trade/delivery/dealer/add/shipment")
    Observable<CommonBaseResponse> dealerAddShipping(@Body RequestBody body);

    //经销商修改物流
    @POST("v1/trade/express/modify")
    Observable<CommonBaseResponse> dealerUpdateLogistics(@Body RequestBody body);

    //发货物流详情
    @GET("v1/trade/delivery/detail")
    Observable<CommonBaseResponse<DeliveryDetailBean>> deliveryDetail(@Query("order_id") String order_id, @Query("order_express_id") String order_express_id);

    //采购售后详情
    @POST("v1/dealer/buyer_refund/detail")
    Observable<CommonBaseResponse<AfterSaleDetailData>> afterSalePurchaseDetail(@Body RequestBody body);

    //采购售后列表
    @GET("v1/dealer/buyer_refund/list")
    Observable<CommonBaseResponse<AfterSalePurchaseListData>> afterSalePurchaseList(@Query("page") String page, @Query("page_size") String page_size);

    //采购单申请取消 refund_id
    @POST("v1/dealer/buyer_refund/cancel")
    Observable<CommonBaseResponse> afterSalePurchaseCancel(@Body RequestBody body);

    //采购售后可操作按钮获取
    @POST("v1/dealer/buyer_refund/button/get")
    Observable<CommonBaseResponse<AfterSalePurchaseBtnData>> afterSalePurchaseBtn(@Body RequestBody body);

    //采购 填写|修改物流
    @POST("v1/dealer/buyer_refund/shipment/set")
    Observable<CommonBaseResponse> afterSalePurchaseShipment(@Body RequestBody body);

    //申请售后
    @POST("v1/dealer/buyer_refund/apply/put")
    Observable<CommonBaseBean> afterSalePurchaseApply(@Body RequestBody body);

    //售后基本信息
    @GET("v1/dealer/buyer_refund/apply/base")
    Observable<ReturnGoodsBean> preAfterSalePurchase(@Query("order_id") String order_id, @Query("order_product_id") String order_product_id, @Query("update") String update);

    //查看保管单列表
    @GET("v1/dealer/order/custody/list")
    Observable<CommonBaseResponse<StorageOrderListData>> storageOrderList(@Query("page") String page, @Query("page_size") String page_size);

    //查看保管单详情
    @GET("v1/dealer/order/custody/detail")
    Observable<CommonBaseResponse<StorageOrderDetailData>> storageOrderDetail(@Query("order_no") String order_no);

    //拨货
    @POST("v1/dealer/order/delivery")
    Observable<CommonBaseResponse<OrderSendDeliveryBean>> toSendDelivery(@Body RequestBody body);

    //发起提货
    @GET("v1/dealer/lading/behalf/check")
    Observable<CommonBaseResponse<Map<String, String>>> pickUpGoods(@Query("order_id") String order_id);

    //检测拨货
    @GET("v1/dealer/order/delivery/check")
    Observable<CommonBaseResponse<Map<String, String>>> checkDeliveryGoods(@Query("order_id") String order_id);

    //检测自己发货
    @GET("v1/dealer/seller_order/delivery/check")
    Observable<CommonBaseResponse<Map<String, String>>> checkSend(@Query("order_id") String order_id);

    //获取评价tab
    @GET("/v1/product/review/tab")
    io.reactivex.Observable<CommentTabBean> getCommentTab(@Query("product_id") String product_id);

    //获取评价列表
    @GET("/v1/product/review/list")
    io.reactivex.Observable<com.eoner.baselibrary.bean.goods.CommentBean> getCommentList(@Query("product_id") String product_id, @Query("type") String type, @Query("page") String page);

    //弹窗 page_type:1 首页 2 支付成功页 3 粉丝福利拦截 4 新人专区拦截
    @POST("/v1/popup/get")
    Observable<CommonBaseResponse<List<CommonPopUpBean>>> commonDialogData(@Body RequestBody body);

    //凑单页面接口
    @GET("/v1/promotion/meet_reduce/spell/list")
    io.reactivex.Observable<GatherBean> getGatherGoodsList(@Query("page") String page, @Query("page_size") String pageSize,
                                                           @Query("activity_id") String activityId, @Query("sort") String sort);

    //优惠券接口
    @GET("/v1/coupon/list/get")
    io.reactivex.Observable<NewCouponBean> getCouponList(@Query("type") String type, @Query("page") String page, @Query("page_size") String pageSize);

    //领取优惠券接口
    @GET("/v1/coupon/receive/list")
    io.reactivex.Observable<NewCouponBean> getReceiveCouponList(@Query("page") String page, @Query("page_size") String pageSize);

    @POST("/v1/trade/refund/check/luckdraw")
    io.reactivex.Observable<CheckRefundBean> checkRefund(@Body RequestBody body);

    //推荐引导2 其他活动弹窗
    @GET("/v1/activity/trial/guide/back")
    io.reactivex.Observable<BackGuideBean> getBackDialogData();

    //任务中心 离开挽回
    @GET("/v1/mission/leave/notice")
    io.reactivex.Observable<TaskRetainBean> getTaskBackDialogData();

    /**
     * 经销商工作台
     */
    @GET("/v1/dealer/index/get")
    Observable<CommonBaseResponse<DealerBean>> getDealerData();

    /**
     * 待结算列表
     */
    @GET("/v1/dealer/income_center/wait_settle_list")
    Observable<CommonBaseResponse<UnClearAccountBean>> getWaitSettleList(@Query("page") String page,
                                                                         @Query("page_size") String page_size);

    /**
     * 物流详情
     */
    @GET("/v1/trade/express/track/detail")
    Observable<CommonBaseResponse<ExpressBean>> getTrackDetail(@Query("order_id") String order_id,
                                                               @Query("track_no") String track_no,
                                                               @Query("biz_type") String biz_type);

    /**
     * 物流列表
     */
    @GET("/v1/trade/order/track/get")
    Observable<CommonBaseResponse<SendLogisticInfoBean>> getSendLogisticInfo(@Query("order_id") String order_id,
                                                                             @Query("biz_type") String biz_type);

    /**
     * 售后详情（别人买我的）
     */
//    @GET("/v1/dealer/seller_refund/detail/get")
    @GET("/v1/distribution/seller_refund/detail/get")
    Observable<CommonBaseResponse<NewRefundDetailsBean>> getRefundDetailsInfo(@Query("refund_no") String refund_no
            , @Query("order_id") String order_id, @Query("order_product_id") String order_product_id);

    /**
     * 处理售后（别人买我的）
     */
//    @POST("/v1/dealer/seller_refund/deal")
    @POST("/v1/distribution/seller_refund/deal")
    Observable<CommonBaseResponse> refundDeal(@Body RequestBody body);

    /**
     * 工作台售后列表（别人买我的）
     */
    @GET("/v1/dealer/seller_refund/list/get")
    Observable<CommonBaseResponse<AfterSaleServeInfoBean>> getAfterSaleServeList(@Query("status") String status,
                                                                                 @Query("page") String page,
                                                                                 @Query("page_size") String pageSize);

    /**
     * 提货给自己列表
     */
    @GET("/v1/dealer/lading/pick/up/get")
    Observable<CommonBaseResponse<PickGoodsBean>> getPickGoodsListInfo();

    /**
     * 提货给TA人列表
     */
    @GET("/v1/dealer/lading/behalf/get")
    Observable<CommonBaseResponse<PickGoodsOrderBean>> getPickGoodsOrderListInfo(@Query("page") String page,
                                                                                 @Query("page_size") String pageSize);

    /**
     * 提货给TA人订单检测
     */
    @GET("/v1/dealer/lading/behalf/check")
    Observable<CommonBaseResponse<CheckOrderBean>> orderCheck(@Query("order_id") String orderId);

    /**
     * 累计收入
     */
    @GET("/v1/dealer/income_center/index")
    Observable<CommonBaseResponse<AccumulatedIncomeBean>> getIncomeCenterInfo();

    /**
     * 经销商---银行卡列表
     */
    @GET("/v1/dealer/income_center/bank_card_list")
    Observable<CommonBaseResponse<List<DealerBankCardBean>>> getBankCardList();

    /**
     * 经销商---解绑银行卡
     */
    @POST("/v1/dealer/income_center/bank_card_unbinding")
    io.reactivex.Observable<CommonBaseResponse> bankCardRemove(@Body RequestBody body);

    /**
     * 经销商---银行卡默认选中
     */
    @POST("/v1/dealer/income_center/bank_card_default")
    io.reactivex.Observable<CommonBaseResponse> updateBankCardDefault(@Body RequestBody body);

    /**
     * 经销商---添加银行卡信息页
     */
    @GET("/v1/dealer/income_center/bank_card_bind_info")
    Observable<CommonBaseResponse<DealerBankCardMoreBean>> getBankCardMoreInfo();

    /**
     * 经销商---提交绑定银行卡
     */
    @POST("/v1/dealer/income_center/bank_card_bind_verify")
    io.reactivex.Observable<CommonBaseResponse<ApplyWithdrawBean>> bindBankCard(@Body RequestBody body);

    /**
     * 经销商---获取银行卡验证码
     */
    @POST("/v1/dealer/income_center/bank_card_bind")
    io.reactivex.Observable<CommonBaseResponse> getDealerCaptcha(@Body RequestBody body);

    /**
     * 账单列表
     */
    @GET("/v1/dealer/income_center/bill_list")
    Observable<CommonBaseResponse<BillBean>> getWithdrawList(@Query("biz_type") String bizType,
                                                             @Query("page") String page);

    /**
     * 冻结列表
     */
    @GET("/v1/dealer/income_center/frozen_list")
    Observable<CommonBaseResponse<UnFreezeBean>> getUnFreezeList(@Query("biz_type") String bizType,
                                                                 @Query("page") String page);

    /**
     * 冻结详情
     */
    @GET("/v1/dealer/income_center/frozen_detail")
    Observable<CommonBaseResponse<UnfreezeDetailsBean>> getUnfreezeDetails(@Query("id") String id);

    /**
     * 待结算详情
     */
    @GET("/v1/dealer/income_center/wait_settle_detail")
    Observable<CommonBaseResponse<UnClearAccountDetailsBean>> getWaitSettleDetail(@Query("trans_id") String trans_id);

    /**
     * 提现收入详情
     */
    @GET("/v1/dealer/income_center/detail")
    Observable<CommonBaseResponse<UnClearAccountDetailsBean>> getInComeDetail(@Query("book_id") String book_id);

    /**
     * 提现退回详情
     */
    @GET("/v1/dealer/income_center/back_detail")
    Observable<CommonBaseResponse<UnClearAccountDetailsBean>> getInComeBankDetail(@Query("book_id") String book_id);

    /**
     * 经销商提现详情页
     */
    @GET("/v1/dealer/income_center/withdraw_detail_get")
    Observable<CommonBaseResponse<WithdrawDetailsBean>> getWithdrawDetails(@Query("book_id") String id);

    /**
     * 申请提现页面
     */
    @GET("/v1/dealer/income_center/withdraw_preview")
    Observable<CommonBaseResponse<ApplyWithdrawBean>> getWithdrawPreviewData();

    /**
     * 申请提现
     */
    @POST("/v1/dealer/income_center/withdraw_apply")
    Observable<CommonBaseResponse<ApplyWithdrawBean>> applyWithdraw(@Body RequestBody body);

    /**
     * 提现手续费弹框
     */
    @POST("/v1/dealer/income_center/withdraw_toast")
    Observable<CommonBaseResponse<WithdrawChargeBean>> withdrawCharge(@Body RequestBody body);

    //获取验证码
    @POST("/v1/customer/sms_captcha_get")
    io.reactivex.Observable<CaptchaBean> getCaptcha(@Body RequestBody body);

    @Multipart
    @POST
    io.reactivex.Observable<CommonBaseResponse<HomeDataBean>> getIndexData(@Part List<MultipartBody.Part> parts,@Url String url);

    @Multipart
    @POST("1/customer/send_sms")
    io.reactivex.Observable<CommonBaseResponse> sendSms(@Part List<MultipartBody.Part> parts);

    @Multipart
    @POST("1/customer/login")
    io.reactivex.Observable<CommonBaseResponse<LoginSuccessData>> login(@Part List<MultipartBody.Part> parts);

    @Multipart
    @POST("1/customer/index")
    io.reactivex.Observable<CommonBaseResponse<MineDataBean>> getCustomerInfo(@Part List<MultipartBody.Part> parts);

    @Multipart
    @POST("1/customer/logout")
    io.reactivex.Observable<CommonBaseResponse> logout(@Part List<MultipartBody.Part> parts);

    @Multipart
    @POST("1/customer/add_subcribe")
    io.reactivex.Observable<CommonBaseResponse> addSubscribe(@Part List<MultipartBody.Part> parts);

    @Multipart
    @POST("1/customer/cancel_subcribe")
    io.reactivex.Observable<CommonBaseResponse> cancelSubscribe(@Part List<MultipartBody.Part> parts);

    @POST("1/note/get_news/{page}-{pageSize}.html")
    io.reactivex.Observable<CommonBaseResponse<MeetReportDataBean>> getNews(@Path("page") String page,@Path("pageSize") String pageSize);

    @POST("1/note/get_historys/{page}-{pageSize}.html")
    io.reactivex.Observable<CommonBaseResponse<MeetReportDataBean>> getHistorys(@Path("page") String page,@Path("pageSize") String pageSize);

    @POST("1/note/get_views/{page}-{pageSize}.html")
    io.reactivex.Observable<CommonBaseResponse<MeetReportDataBean>> getViews(@Path("page") String page,@Path("pageSize") String pageSize);

    @POST("1/master/get_masters/{page}-{pageSize}.html")
    io.reactivex.Observable<CommonBaseResponse<MasterMienDataBean>> getMasters(@Path("page") String page, @Path("pageSize") String pageSize);

    @POST("1/search/index/{page}-{pageSize}.html")
    io.reactivex.Observable<CommonBaseResponse<SearchResultDataBean>> getSearchResult(@Path("page") String page, @Path("pageSize") String pageSize,@Body RequestBody body);

    @POST("1/product/get_all_products/{page}-{pageSize}.html")
    io.reactivex.Observable<CommonBaseResponse<EcItemDataBean>> getProducts(@Path("page") String page, @Path("pageSize") String pageSize, @Query("category_id") String category_id);

    // 扫码弹窗
    @POST("1/worker/scan.html")
    io.reactivex.Observable<CommonBaseResponse> scanSign(@Body RequestBody body);
}
